//---------------------------------------------------------------------------

#ifndef class_TabCtrlH
#define class_TabCtrlH
#include <vcl.h>
#include <list>
struct TTabItem
{
 TWinControl *Item, *Up, *Down, *Left, *Right, *Next, *Prev;
};
enum MoveKeys {keyLeft = 37, keyRight = 39, keyUp = 38, keyDown = 40, keyCtrl = 17};
class TTabCtrl
{
 std::list<TTabItem*> list;
 bool Ctrl;
 void __fastcall Focuse(TWinControl * I, int Key);
 bool __fastcall InKeys(int Key);
public:
  __fastcall TTabCtrl();
  __fastcall ~TTabCtrl();  
 void __fastcall Add( TWinControl *Item, TWinControl *Up, TWinControl *Down, TWinControl *Left, TWinControl *Right, TWinControl *Next, TWinControl *Prev);
 void __fastcall Process(TForm *form, tagMSG &Msg,
      bool &Handled);
 void __fastcall Next(TForm *form);
};
//---------------------------------------------------------------------------
#endif
 